Anexo D: Classificação de conteúdo via conectividade dos participantes

Importadas as bibliotecas:


In [10]:
from SPARQLWrapper import SPARQLWrapper, JSON
import time, operator, numpy as n, networkx as x

Guardados os prefixos mais úteis no domínio:


In [31]:
PREFIX="""PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ops: <http://purl.org/socialparticipation/ops#>
PREFIX opa: <http://purl.org/socialparticipation/opa#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dc: <http://purl.org/dc/terms/>
PREFIX tsioc: <http://rdfs.org/sioc/types#>
PREFIX sioc: <http://rdfs.org/sioc/ns#>
PREFIX schema: <http://schema.org/>"""

Baixadas todas as amizades do participa


In [51]:
NOW=time.time()
q="""SELECT DISTINCT ?a ?b ?aname ?bname
       WHERE {
          ?a foaf:knows ?b .
          ?a foaf:name ?aname .
          ?b foaf:name ?bname .
       }"""
sparql3 = SPARQLWrapper("http://localhost:82/participabr/query")
sparql3.setQuery(PREFIX+q)
sparql3.setReturnFormat(JSON)
results4 = sparql3.query().convert()
print("%.2f segundos para puxar todas as amizades do Participa.br"%
      (time.time()-NOW,))


0.12 segundos para puxar todas as amizades do Participa.br

Feita rede de amizades do Participa.br:


In [52]:
g=x.Graph()
for amizade in results4["results"]["bindings"]:
    nome1=amizade["a"]["value"]
    nome2=amizade["b"]["value"]
    g.add_edge(nome1,nome2)

Baixadas interações no Participa.br:


In [17]:
NOW=time.time()
q2="""SELECT ?participante1 ?participante2 ?aname ?bname
       WHERE {
           ?comentario dc:type tsioc:Comment.
           ?participante1 ops:performsParticipation ?comentario.
           ?participante1 foaf:name ?aname.
           ?artigo sioc:has_reply ?comentario.
           ?participante2 ops:performsParticipation ?artigo.
           ?participante2 foaf:name ?bname.
       }"""
sparql3.setQuery(PREFIX+q2)
sparql3.setReturnFormat(JSON)
results = sparql3.query().convert()
print("%.2f segundos para puxar as interações do Participa.br"%
      (time.time()-NOW,))


16.06 segundos para puxar as interações do Participa.br

Feita rede de interações:


In [18]:
d=x.DiGraph()
for interacao in results["results"]["bindings"]:
    nome_chegada=interacao["participante1"]["value"]
    nome_partida=interacao["participante2"]["value"]
    if (nome_partida,nome_chegada) in d.edges():
        d[nome_partida][nome_chegada]["weight"]+=1
    else:
        d.add_edge(nome_partida,nome_chegada,weight=1.)

Listando os mais conectados para ver suas URIs e verificar bom andamento das buscas SparQL:


In [53]:
sorted_g = sorted(g.degree().iteritems(), key=operator.itemgetter(1))
sorted_g[::-1][:15]


Out[53]:
[(u'http://participa.br/profile/marcelobranco', 122),
 (u'http://participa.br/profile/mjade', 60),
 (u'http://participa.br/profile/anita', 36),
 (u'http://participa.br/profile/vicentedeaguiar', 35),
 (u'http://participa.br/profile/laurazacher', 33),
 (u'http://participa.br/profile/lfelipe', 32),
 (u'http://participa.br/profile/ricardopoppi', 31),
 (u'http://participa.br/profile/lucasmoreira', 30),
 (u'http://participa.br/profile/ronald.costa', 29),
 (u'http://participa.br/profile/valessiobrito', 27),
 (u'http://participa.br/profile/grazi_machado', 20),
 (u'http://participa.br/profile/decko', 20),
 (u'http://participa.br/profile/rfabbri', 20),
 (u'http://participa.br/profile/nilzetepacheco', 18),
 (u'http://participa.br/profile/cclaro', 18)]

In [54]:
sorted_d = sorted(d.degree().iteritems(), key=operator.itemgetter(1))
sorted_d[::-1][:15]


Out[54]:
[(u'http://participa.br/profile/portal', 46),
 (u'http://participa.br/profile/rfabbri', 26),
 (u'http://participa.br/profile/gabriela', 19),
 (u'http://participa.br/profile/hyltonsarcinelliluz', 15),
 (u'http://participa.br/profile/fadia', 13),
 (u'http://participa.br/profile/grazi_machado', 12),
 (u'http://participa.br/profile/josefurtado', 11),
 (u'http://participa.br/profile/andre61', 11),
 (u'http://participa.br/profile/davelino', 10),
 (u'http://participa.br/profile/parrahenri', 9),
 (u'http://participa.br/profile/julianogeraldi', 8),
 (u'http://participa.br/profile/capuano', 7),
 (u'http://participa.br/profile/kodama', 7),
 (u'http://participa.br/profile/ibebrasil', 7),
 (u'http://participa.br/profile/thiagozoroastro', 7)]

Pode-se selecionar mensagens de periféricos, hubs e intermediários. Por simplicidade, aqui estão 5 mensagens dos 5 mais conectados nas atividades:


In [55]:
uris=[i[0] for i in sorted_d[::-1][:5]]
for uri in uris:
    q=""" SELECT ?texto
       WHERE {
          ?comentario dc:creator <%s> .
          ?comentario dc:type tsioc:Comment.
          ?comentario schema:text ?texto .
       } LIMIT 2"""%(uri,)
    #print q
    sparql3.setQuery(PREFIX+q)
    results4 = sparql3.query().convert()
    #print results4
    print "\n"
    try:
        print uri+"\n"+ results4["results"]["bindings"][0]["texto"]["value"]
    except:
        pass





http://participa.br/profile/rfabbri
que órgãos, de que programas?


http://participa.br/profile/gabriela
Não pode esquecer da gestão democrática nas universidades e instituições de ensino.
Vale a pena mencionnar isso espqecificamente, porque já tem lei prevendo, mas na prática não acontece.


http://participa.br/profile/hyltonsarcinelliluz
Apoio a sugestão de incluir o termo &amp;quot;Controle&amp;quot; ao nome da politica em pauta, com vista a uniformizar a conceituação, visto que já existe e é difundido o termo &amp;quot;controle social&amp;quot; para políticas públicas, no qual se insere a participação em debate.



http://participa.br/profile/fadia
O termo participação já está em ampla utilização no âmbito dos governos, apropriado inclusive pelo capital. O que se questiona é o que se entende por essa participação e o que se quer é a efetivação da participação. Concordo com a inserção do termo controle.

Política Nacional para Efetivação do Controle e Participação Social

Pode-se selecionar mensagens de periféricos, hubs e intermediários. Por simplicidade, aqui estão 5 mensagens dos 5 mais conectados nas amizades:


In [56]:
uris=[i[0] for i in sorted_g[::-1][:5]]
for uri in uris:
    q=""" SELECT ?texto
       WHERE {
          ?comentario dc:creator <%s> .
          ?comentario dc:type tsioc:Comment.
          ?comentario schema:text ?texto .
       } LIMIT 2"""%(uri,)
    #print q
    sparql3.setQuery(PREFIX+q)
    results4 = sparql3.query().convert()
    #print results4
    print "\n"
    try:
        print uri+"\n"+ results4["results"]["bindings"][0]["texto"]["value"]
    except:
        pass



http://participa.br/profile/marcelobranco
Uma foto ou figura em cada post ficaria muito melhor. 




http://participa.br/profile/anita
Oiiii Ronald!!! 


http://participa.br/profile/vicentedeaguiar
Por exemplo, essa sua resposta que você fez no meu comentário, eu não consigo visualizar no mural, só diretamente no artigo. Você consegue ver no mural essa minha resposta agora? Se sim, pode ser problema na versão do CSS para Firefox 25.0.1. 


http://participa.br/profile/laurazacher
Sejam muito bem-vindos!

Iniciamos a Conferência Virtual da DPU sobre Migrações e Refúgio já com uma importante discussão!

Aproveito o início da discussão reiterando a manifestação da Dra. Ana Luisa e repassando algumas orientações para organizarmos o processo de discussão coletiva:

- Inicialmente, a discussão será em sentido amplo; contudo, conforme a discussão avançar, é preciso que os tópicos postados indiquem (1) a qual dos eixos temáticos estão vinculados, (2) a qual bloco está contemplando; (3) qual temática aborda.

Exemplo: Discussão proposta sobre expulsão: inlcuir no título da mensagem:

Eixo Temático nº (I ou IV) - Bloco: Mudanças Legislativas - Tema: Expulsão

Relembro os eixos temáticos a serem discutidos na Conferência da DPU:

Eixo I - Igualdade de tratamento e acesso a serviços e direitos;

Eixo IV - Abordagem de violações de direitos e meios de prevenção e proteção, no qual também será discutido o Subtema -  Enfrentamento ao Sequestro/ Subtração Internacional de Crianças e 
a aplicação da Convenção de Haia de 1980 sobre os Aspectos Civis do Sequestro Internacional de Crianças.

Em cada uma das mensagens postadas, favor indicar a qual dos blocos propostos está vinculada: 

(a) mudanças legislativas (lei em sentido amplo); 
(b) políticas públicas; 
(c) atuação e estruturação da DPU para assistência ao migrante.

- Estas orientações visam facilitar o processo de sistematização das propostas. Para ilustrar o produto final da sistematização, deixo o link para o Caderno de Propostas da 1ª Conferência Nacional de Segurança Pública, cujo modelo de conferência é a base da atual Comigrar: 
 
http://www.ipea.gov.br/participacao/images/pdfs/conferencias/Seguranca_Publica/caderno_propostas_1_conferencia_seguranca_publica.pdf

- Informações sobre os eixos temáticos e sobre o processo da Conferência podem ser obtidas através do Manual do Participante: http://www.dpu.gov.br/images/stories/arquivos/PDF/Manual_do_Participante_-_DPU_-_COMIGRAR.pdf 

- Qualquer dúvida sobre o processo da Conferência, favor entrar em contato através do telefone (51) 3216-6961 e/ou do correio eletrônico comigrar@dpu.gov.br.

Vamos construir uma política migratória com Justiça e Igualdade para todos!

|||--- FIM ---|||